package com.zzl.alligator.framework.aspectj.annotation;

import com.zzl.alligator.common.enums.BusinessTypeEnum;
import com.zzl.alligator.common.enums.OperatorTypeEnum;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 操作日志注解
 *
 * @author zhouziliang
 * @since 2020/7/6
 */
@Target({ ElementType.PARAMETER, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Log {

    /**
     * 模块
     * @return
     */
    String title() default "";

    /**
     * 功能
     *
     * @return 插入/更新。。。
     */
    BusinessTypeEnum businessType() default BusinessTypeEnum.OTHER;

    /**
     * 操作者类型
     *
     * @return 操作者类型 后台管理用户/其他
     */
    OperatorTypeEnum operatorType() default OperatorTypeEnum.MANAGER;

    /**
     * 是否保存请求的参数
     */
    boolean isSaveRequestData() default true;
}
